package bean;

import java.io.Serializable;
import java.util.List;

import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

import org.primefaces.component.datatable.DataTable;

import br.com.biblioteca.interfaces.GerenciadorDeCategoria;
import br.com.biblioteca.model.Categoria;


@ManagedBean
@SessionScoped
public class CategoriaBEAN implements Serializable {
	
	private static final long serialVersionUID = 1L;
	
	@EJB
	private GerenciadorDeCategoria gerenciadorDeCategoria;
	
	private Categoria categoria;
	private DataTable datatable;
	private Boolean btnSalvar;
	private Boolean btnCadastrar;

	public CategoriaBEAN(){
		categoria = new Categoria();
		btnSalvar = false;
		btnCadastrar = true;
		//teste
	}
	
	public String cadastrarCategoria() {
		gerenciadorDeCategoria.adicionarCategoria(categoria);
		categoria = new Categoria();
		FacesContext context = FacesContext.getCurrentInstance(); 
		context.addMessage(null, new FacesMessage("Successful", "Cadastro realizado com sucesso!! "));
		return "";
	}
	
	public String cancelar(){
		btnSalvar = false;
		btnCadastrar = true;
		categoria = new Categoria();
		return "telaAdm.xhtml";
	}
	
	public String salvarCategoria(){
		gerenciadorDeCategoria.alterarCategoria(categoria);
		btnSalvar = false;
		btnCadastrar = true;
		categoria = new Categoria();
		//conversa.end();
		return "";
	}
	
	public String editarCategoria() {
		//conversa.begin();
		categoria = (Categoria) datatable.getRowData();
		btnSalvar = true;
		btnCadastrar = false;
		return "telaCadCategoria.xhtml";	}
	
	public String deletarCategoria(){
		categoria = (Categoria) datatable.getRowData();
		gerenciadorDeCategoria.deletarCategoria(categoria);
		categoria = new Categoria();
		return "";
	}
	
	public List<Categoria> getCategorias() {
		return gerenciadorDeCategoria.getCategorias();
	}
	
	public Categoria getCategoria() {
		return categoria;
	}

	public void setCategoria(Categoria categoria) {
		this.categoria = categoria;
	}

	public DataTable getDatatable() {
		return datatable;
	}

	public void setDatatable(DataTable datatable) {
		this.datatable = datatable;
	}

	public Boolean getBtnSalvar() {
		return btnSalvar;
	}

	public void setBtnSalvar(Boolean btnSalvar) {
		this.btnSalvar = btnSalvar;
	}

	public Boolean getBtnCadastrar() {
		return btnCadastrar;
	}

	public void setBtnCadastrar(Boolean btnCadastrar) {
		this.btnCadastrar = btnCadastrar;
	}
	
}
